Wireless system bus

ABSTRACT

A mobile or desktop computer having a system bus that is exposed externally using a wireless transceiver so that input and output devices within proximity of the computer can be configured for immediate use. The wireless system bus of the invention provides discovery and acceptance of wireless peripheral devices within the range of the wireless transmissions. Serial or parallel communication can be supported on the same or different frequency channels. Preferably, the invention utilizes a dedicated discovery frequency for detecting the presence of peripherals in the proximity. Commands and data can be exchanged between the computer and the peripheral device in a secured manner.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to a system bus and method forusing the system bus. More particularly, the invention relates to asystem bus and method that provides wireless communication with variousinput and output devices.

[0003] 2. Description of the Related Art

[0004] Unlike their desktop counterparts, handheld computers havelimited capabilities because of limitations on size and poweravailability. The small size means that the display must be small, theinterior space for hardware is cramped, connections for peripherals areminimal, expanding or upgrading the system is cumbersome, and the spaceand weight allowed for batteries or other power sources is quite small.While handheld computers are generally provided with power adapters forhome or office use, it is generally necessary for the batteries to lastseveral hours without a charge in order for the handheld to deliver thefull benefits of portability that users expect from a handheld computer.

[0005] Furthermore, cabling to external input and output devices presentusability and portability problems. Expansion cards are now availablefor adding various functions to the handheld, such as additional memory,backups, modems, games and the like. However, only one or two cards canbe used at one time and any additional cards must be carried separately.If peripheral devices are going to be used with the computer, it isnecessary to keep and use cables that add bulk, weight and spacinglimitations to the system. Furthermore, the cables themselves aresubject to damage and can prevent successful use of the peripherals towhich the cables are connected.

[0006] The use of peripherals also increases the amount of power thatmust be available to the computer. Consequently, the computer must havea much bigger battery than would otherwise be required to merely operatethe computer.

[0007] Another problem with connecting peripheral devices to a computerthrough cables is that increasing the number of peripheral connectionsincreases the bulk and cost of the system. For example, a UniversalSerial Bus (“USB”), supporting data transfer rates of 12 Mbps (12million bits per second), can be used to connect up to 127 peripheraldevices, such as mice, modems, and keyboards. However, peripheraldevices must be connected through a hub, such as a 4 or 6 port hub. Ifthe number of peripheral devices later exceeds the number of ports, thenthe hub must either be replaced with a hub having more ports or a secondhub must be daisychained with the first hub, further exacerbating thecabling problem.

[0008] It is also common that older handheld computers will not supportnew input and output devices due to architectural limitations. Whilemost personal computers have been designed with backward compatibilityas an important consideration, handheld computers do not always providethis compatibility. Consequently, it may be necessary to replace thehandheld with a newer model in order to support the use of recentlydeveloped input and output devices.

[0009] One attempt to address these problems is the use of dockingstations, such as that described in U.S. Pat. No. 6,088,752 entitledMETHOD AND APPARATUS FOR EXCHANGING INFORMATION BETWEEN BUSES IN APORTABLE COMPUTER AND DOCKING STATION THROUGH A BRIDGE EMPLOYING ASERIAL LINK. A docking station is a platform into which a portablecomputer can be installed. The docking station typically contains slotsfor expansion cards, bays for storage devices, and connectors forperipheral devices, such as printers and monitors. Once inserted in adocking station, the portable computer essentially becomes a desktopmodel computer. When it is taken out, it becomes a portable computeragain. More importantly, some data is accessible in both modes becauseit resides on the portable computer's drives. The idea behind dockingstations is to combine the expansion possibilities of desktop modelcomputers with the portability of notebook computers. In addition, thedocking station enables use of a full-size keyboard or a monitor, andprovides access to other peripherals or resources.

[0010] However, docking stations and personal computers have their ownlimitations. For example, docking stations must be made specifically fora given portable computer, because there is no standard for dockingstations. Also, both docking stations and personal computers requirenests of cables and wires in order to achieve the level of connectivityof which they are capable. And while these systems have more expansioncapabilities than handheld or portable computers, it is still necessaryto purchase expansion cards and cables, and then configure them tocommunicate with the system. Also, portability is inhibited because ofcabling portability challenges and power limitations.

[0011] Therefore, despite the foregoing developments, there remains aneed for a computer that has greater capacity for supporting multipleinput and output devices. There is also a need for a computer that wouldprovide greater compatibility so that the computer can support old andnew input and output devices. It would be desirable if this improvedsupport of input and output devices could be accomplished using astandard communication protocol that would allow the computer tocommunicate with various input and output devices or peripheralsregardless of brand, physical connector type, or power consumption. Itwould also be desirable if two or more computers could directly shareone or more peripheral devices without the need for expensive hardware.

SUMMARY OF THE INVENTION

[0012] The present invention provides a method comprising: (a)establishing a wireless communication link between a computer through afirst transceiver communicatively coupled to a bus in the computer, anda second transceiver communicatively coupled to a peripheral devicethrough a control unit, wherein the computer is configured to operateunder the control of an operating system and one or more applicationprograms; (b) providing identification of the peripheral device to adriver via the first transceiver, wherein the driver is stored in amemory device that is coupled to the bus; and (c) communicating commandsbetween the one or more application programs and the peripheral devicethrough the operating system, the driver, the first transceiver, thesecond transceiver, and the control unit. In one embodiment, the methodincludes transmitting a device discovery signal from the secondtransceiver at a device discovery frequency, receiving the devicediscovery signal at the first transceiver, and communicating the devicediscovery from the first transceiver over the bus to the driver. Themethod will preferably include communicating a request foridentification from the driver to the control unit of the peripheraldevice. In accordance with user preferences, the method may furthercomprise automatically configuring the driver for communication with theidentified peripheral device. Alternatively, the method may includeinforming a user of the computer that the peripheral device has beenidentified, and querying the user whether to accept and configure theperipheral device.

[0013] The wireless communication link between the computer system busand a peripheral device may incorporate security measures including, butnot limited to, encryption, passwords, and frequency hopping. Thediscovery and configuration of the wireless peripheral is accomplishedusing a secure access protocol. A preferred security protocol can be anencoded communications data stream using a cryptographic algorithm.

[0014] Further, the method may comprise: (a) establishing a wirelesscommunication link between a wireless bus extender in a computer and atransceiver communicatively coupled to a peripheral device through acontrol unit; (b) providing identification of the peripheral device to adriver via the first transceiver, wherein the driver is stored in amemory device that is coupled to the bus; and (c) communicating commandsbetween the one or more application programs and the peripheral devicethrough the operating system, the driver, the first transceiver, thesecond transceiver, and the control unit. It is preferred that thewireless bus extender comprise a transceiver for transmitting andreceiving wireless signals selected from radio frequency, infrared, orcombinations thereof.

[0015] In accordance with the wireless system bus and wireless busextender of the present invention, it is possible to communicatewirelessly using either serial or parallel communications. Wirelessserial communications or signals are transmitted at a single frequencyand provide digital information at a given clock speed. Suchtransmission may be thought of as a sort of square wave signal,including both return-to-zero and non-return-to-zero signals. In orderfor such information to be useful to a computer or peripheral device,the signals must generally be deserialized. On the other hand, parallelcommunications or signals are transmitted using a separate frequency foreach of the parallel channels required. For example, eight bit parallelcommunications would require that each of the eight bits be transmittedat the same time or clock pulse over eight different frequencies.

[0016] Another aspect of the invention provides a computer systemcomprising: (a) a system bus providing communication lines between amemory device, a central processing unit, an input/output controller,and a user input device; (b) a wireless system bus extender coupled tothe system bus; and (c) bus extender driver code stored in the memoryand executing on the central processing unit to establish wirelesscommunication with a wireless peripheral device. Preferably, thewireless system bus extender and the bus extender driver code cooperateto either (1) discover the wireless peripheral device, (2) request andreceive identification of the wireless peripheral device, (3)communicate a bus address to the wireless peripheral device, or (4) acombination thereof. The computer system may also provide an operatingsystem stored in the memory and executing on the central processing unitto execute commands from one or more application programs stored in thememory and executing on the central processing unit, wherein the busextender driver code makes wireless peripheral devices accessible to theoperating system. The wireless communication system may be selected fromserial and parallel communications using wireless signals.

[0017] The foregoing and other objects, features and advantages of theinvention will be apparent from the following more particulardescription of a preferred embodiment of the invention, as illustratedin the accompanying drawings wherein like reference numbers representlike parts of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

[0018]FIG. 1 is an example of a computer suitable for use in accordancewith the present invention.

[0019]FIG. 2 is a schematic diagram of exemplary system architecture fora computer system, such as the computer of FIG. 1.

[0020]FIG. 3 is an example of a personal computer system suitable foruse in accordance with the present invention.

[0021]FIG. 4 is a schematic diagram of exemplary system architecture fora computer system, such as the personal computer system of FIG. 3.

[0022]FIG. 5 is a schematic diagram of a first embodiment of a wirelesssystem bus communicating with a wireless peripheral device.

[0023]FIG. 6 is a schematic diagram of a second embodiment of a wirelessbus extender communicating with a wireless peripheral device.

[0024]FIG. 7 is a schematic diagram of the digital transceivers in botha handheld computer and a wireless peripheral device.

[0025]FIG. 8 is a flow diagram illustrating the flow of data between ahandheld computer and a wireless peripheral device over both a serialcommunication channel and a parallel communication channel.

[0026] FIGS. 9A-B provide a flowchart for a device discovery process inaccordance with the invention.

[0027] FIGS. 10A-B provide a flowchart for a device communicationprocess in accordance with the invention.

[0028]FIG. 11 is a block diagram of an alternative indirect means forconnecting with a peripheral device.

DETAILED DESCRIPTION

[0029] The present invention provides a computer having a system busthat is exposed externally using a wireless transceiver so that inputand output devices within proximity of the computer can be configuredfor immediate use by the device. The wireless system bus of theinvention provides discovery and acceptance of wireless peripheraldevices within the range of the wireless transmissions. It should berecognized that the wireless system bus may be incorporated into anytype of computer, specifically including, without limitation, desktoppersonal computers and portable computers, such as laptop computers,notebook computers, handheld computers, and personal digital assistants.While much of the following description is directed to handheldcomputers, the invention lends itself equally to other computerarchitectures.

[0030] As used herein, “handheld personal computer” (H/PC) means a smallgeneral computing device having a processing unit that is capable ofrunning one or more application programs, a display, and an inputmechanism that is typically something other than a full-size keyboard.The input mechanism might be a keypad, a touch-sensitive screen, a trackball, a touch-sensitive pad, a miniaturized QWERTY keyboard, or thelike. The term “wireless”, as used herein, shall be taken to include anycommunication means without wires, such as radio frequency transmissionsand infrared transmissions.

[0031] The term “system bus”, as used herein, shall be taken to includethe internal bus and any expansion bus, such as an ISA or PCI bus,coupled to the internal bus through a bridge. While a wireless expansionbus is within the scope of the present invention, the preferred wirelesssystem bus is a wireless internal bus providing either serial orparallel communications. Where a wireless expansion bus is being used,the bus may be a PCI bus or other parallel communications bus, or a USBor other serial communications bus.

[0032] Because the connection between computers and peripheral devicesof the present invention are wireless, it is possible to shareperipheral devices among a plurality of computers. Furthermore, thissharing may be accomplished without additional cables and withoutexpensive hardware such as a multipath I/O device. The sharing ofperipheral devices is accomplished simply by providing contentionmanagement within the software of the peripheral device. Contentionmanagement gives control over the peripheral device to one computer at atime. Any contention management scheme currently being used withmultipath I/O devices may be implemented in software or hardware for usein accordance with the present invention.

[0033]FIG. 1 is an illustration of a handheld personal computer,specifically a personal digital assistant (PDA) 10, such as the IBMWorkPad® from International Business Machines Corporation. However, theinvention is compatible with other brands and types of handheld personalcomputers, such as a personal organizer, a palmtop computer, acomputerized notepad, or the like.

[0034] Handheld computing device 10 has a casing 12 and an LCD (liquidcrystal display) 14 with a touch-sensitive screen mounted in the casing12. A stylus 16 may be used with the device to enter data through thetouchscreen display 14. The handheld computing device 10 can also beimplemented with a wireless transceiver (internal) such as an IR(infrared) transceiver and/or an RF (radio frequency) transceivercoupled to antenna 18.

[0035]FIG. 2 is a block diagram showing the functional components of thehandheld computing device 20. It has a processor 22, a memory 24, adisplay 26, an optional keyboard 28, and a communications port 36 incommunication with an internal system bus 25. The memory generallyincludes both volatile memory 24 (e.g., RAM) and non-volatile memory 35(e.g., ROM, PCMCIA cards, and harddisk drives). An operating system 30is resident in the memory 24 and executes on the processor 22. The H/PC20 preferably runs the Palm® OS operating system from Palm Computing.However, the handheld computing device may be implemented with otheroperating systems, such as Windows® CE or Linux.

[0036] One or more application programs 32 are loaded into memory 24 andrun on the operating system 30. Examples of applications include emailprograms, scheduling programs, PIM (personal information management)programs, word processing programs, spreadsheet programs, Internetbrowser programs, and so forth. Device drivers 33 are also provided inmemory for controlling operation of the display 26, keyboard 28, andaudio generator 38.

[0037] The H/PC 20 has a power supply 34, which is implemented as one ormore batteries or fuel cells. The power supply 34 might further includean external power source that overrides or recharges the built-inbatteries, such as an AC adapter or a powered docking cradle.

[0038]FIG. 3 shows a prior art personal computer system 50. The personalcomputer 50, such as an IBM NetVista®, includes a display device 52(such as a monitor), a display screen 54, a cabinet 56 (which enclosescomponents typically found in a computer, such as CPU, RAM, ROM, videocard, hard drive, sound card, serial ports, etc.), a keyboard 58, amouse 60 and a modem, router or network card 62. Mouse 60 may have oneor more buttons or control devices, such as buttons 66. The computerpreferably has a browser and some type of communication device such asmodem 62 that allows computer system 50 to be connected to the Internet.

[0039]FIG. 4 illustrates an exemplary system architecture for a priorart computer system 70, such as the personal computer system 50 of FIG.3. The exemplary computer system of FIG. 4 is for descriptive purposesonly. Although the description may refer to terms commonly used indescribing particular computer systems, the description and conceptsequally apply to other systems, including systems having dissimilararchitectures.

[0040] Computer system 70 includes a central processing unit (CPU) 72,which may be implemented with a conventional microprocessor, a randomaccess memory (RAM) 74 for temporary storage of information, and a readonly memory (ROM) 76 for permanent storage of information. A memorycontroller 78 is provided for controlling RAM 74 and ROM 76.

[0041] A bus 80 interconnects the components of computer system 70. Abus controller 82 is provided for controlling bus 80. An interruptcontroller 84 is used for receiving and processing various interruptsignals from the system components.

[0042] Mass storage of data may be provided by a flash memory diskette,CD ROM 83, or hard drive 85. Data and software maybe exchanged withcomputer system 70 via removable media, such as flash memory, adiskette, or CD ROM 83. Removable media is insertable into drive 86 thatis, in turn, connected to bus 80 by a controller 88. Hard disk 85 ispart of a fixed disk drive 90 that is connected to bus 80 by controller92. An optional image input device 94, such as a digital camera orscanner, is also shown coupled to the bus 80 through the controller 96.

[0043] User input to computer system 70 may be provided by a number ofdevices. For example, a keyboard 100 and mouse 102 are connected to bus80 by controller 104. An optional audio transducer 106, which may act asboth a microphone and a speaker, is connected to bus 80 by audiocontroller 108, as illustrated. It will be obvious to those skilled inthe art that other input devices, such as a pen and/or tablet maybeconnected to bus 80 using an appropriate controller and software, asrequired. Direct memory access (DMA) controller 110 is provided forperforming direct memory access to RAM 74. A visual display is generatedby video controller 112 that controls video display 114. Computer system70 also includes a communications adaptor 116 that allows the system tobe interconnected to a local area network (LAN) or a wide area network(WAN), schematically illustrated as network 119.

[0044] Operation of computer system 70 is generally controlled andcoordinated by operating system software, such as the AIX® operatingsystem, available from International Business Machines Corporation,Austin, Tex., or Windows 2000® from Microsoft Corp., Redmond, Wash. Theoperating system controls allocation of system resources and performstasks such as processing scheduling, memory management, networking, andI/O services, among other things. In particular, an operating systemresident in system memory and running on CPU 72 coordinates theoperation of the other elements of computer system 70. The presentinvention maybe implemented with any number of commercially availableoperating systems, including Palm OS, Linux, Windows NT and DOS. One ormore applications, such as Lotus Notes, commercially available fromLotus Development Corp., Cambridge, Mass., maybe executable under thedirection of the operating system. If the operating system is a truemultitasking operating system, such as Linux, multiple applications mayexecute simultaneously.

[0045]FIG. 5 is a schematic diagram of a first embodiment of a computer120 having a wireless internal system bus for communicating with awireless peripheral device 122. Similar to either the handheld computerof FIG. 2 or the personal computer of FIG. 4, the computing device 120has a processor 22, an interrupt controller 23, an internal or externalmemory 24, a display device 26, and an alphanumeric input device 28,such as an optional keyboard. An operating system 30, one or moreapplications 32, and one or more device drivers 33 are resident in thememory 24 and execute on the processor 22. The components of thecomputer 120 communicate over the internal bus 25. Finally, a digitaltransceiver 128 is coupled directly to the internal bus 25 to form awireless internal bus in accordance with the invention. While thecomputer 120 is illustrate with a hardwired display device 26 andalphanumeric input device 28, as would be the case in a typical handheldcomputer, it should be recognized that even these devices maycommunicate wirelessly with the system bus in accordance with theinvention.

[0046] The wireless peripheral device 122 maybe any present or futureinput or output device, but may specifically include, withoutlimitation, a memory or storage device, disk drive, printer, keyboard,display, or speakers. The device 122 includes a digital transceiver 130,an input/output controller 132, and a physical device 134 that performsthe actual input or output. The input/output controller 132 isresponsible for managing and interpreting the communications between thedigital transceiver and the physical device.

[0047]FIG. 6 is a schematic diagram of a second embodiment of a computer140 having a wireless bus extender communicating with the wirelessperipheral device 122. The computer 140 is substantially similar to thecomputer 120 of FIG. 5, except that the digital transceiver 128 is incommunication with an expansion bus 126, such as a USB or PCI bus, incommunication with the internal bus 25 through a bridge 124 rather thancommunicating directly with the internal bus 25. By communicating withthe expansion bus 126, the digital transceiver 128 may take the form ofan adapter card. Because the wireless bus extender can provide wirelesscommunications using various communication protocols, such as USB, SCSIand PCI, it is possible to establish wireless communication withwireless peripheral devices that are designed to operate using thesesame communication protocols.

[0048]FIG. 7 is a schematic diagram of the digital transceiver 128 fromthe computer and the digital transceiver 130 from the wirelessperipheral device. The operation and use of the digital transceivers isdescribed in U.S. Pat. No. 5,877,882, which patent is herebyincorporated by reference herein. It can be seen from the figure thatthe input/output 150, address locations 152 and data 154 are carriedfrom the system bus to and from the transceiver 156. Information comingfrom the system bus passes through the transceiver 156 and then goes tothe FIFO buffer 158. The FIFO buffer 158 transmits data 154 to themultiplexer 160. The FIFO buffer 158 transmits address 152 andinput/output 150 to the bus interface controller/decoder 162. The businterface controller/decoder directs information then to the multiplexer160, to the serializer 164, or back to the FIFO buffer 158. Themultiplexer 160 directs information to the serializer 164. Theserializer 164 then sends information to the transmitter driver 166which then goes out as a wireless transmission 168, such as radiofrequency waves or infrared light.

[0049] Incoming wireless transmissions 170 enter a receiver amplifier172 and are deserialized in the deserializer 174. The deserializer 174then sends information to the demultiplexer 176. Information goes fromthe demultiplexer 176 to the FIFO buffer 178 for distribution either tothe bus interface controller/decoder 162 or to the transceiver 156. Thebus interface controller/decoder 162 sends information to thedeserializer 174, the demultiplexer 176, or to the transceiver 156. Thetransceiver 156 then sends received information to the bus. It should benoted that while the system of FIG. 7 could be implemented as software,rather than hardware, the performance might be slower.

[0050] The architecture shown in FIG. 7 permits clock variation betweenthe computer and the wireless peripheral device. Connection of devicesmade by different manufacturers is easily achievable since any devicethat conforms to the wireless link requirements can communicate with thecomputer. The digital transceiver also negates the need for multi-pinconnectors that consume valuable space on the handheld computer. Inaccordance with the invention, the computer can provide full busextension to all wireless peripheral devices.

[0051] It should be recognized that the digital transceivers 128, 130operate in like fashion with the transmitter of one sending signals tothe receiver of the other. Accordingly, the same reference numbers havebeen placed on the components of the digital transceiver 130 to indicatethe identical function. It should also be recognized that the digitaltransceivers 128, 130 operate as described above, whether they arecoupled directly to the internal bus 25 (as in FIG. 5) or coupled to anexpansion bus 126 (as in FIG. 6).

[0052]FIG. 8 is a flow diagram illustrating the flow of data between thehandheld computer 120 and the wireless peripheral device 122 over both aserial communication channel 180 and a parallel communication channel182, shown here as an 8-bit channel. A parallel communication channelmaybe implemented using 8 transceivers (not including the transceiverdedicated to a discovery channel) that are set to transmit and receivesignals at 8 different frequencies. As mentioned above, the parallelcommunications must be transmitted simultaneously at the same time asdictated by clock pulses, illustrated by lines 183. It should berecognized that any number of frequencies may use to establish anynumber of channels, specifically including 16, 32, and 64.

[0053]FIGS. 9A and 9B provide a flowchart for a discovery process thatis carried out between a computer and a peripheral device, such as inFIGS. 5-8, in accordance with the invention. A computer equipped with awireless bus extender and a wireless peripheral device are both turnedon in steps 200 and 202. In state 204, the I/O controller polls itsreceiver for existing use of the discovery frequency and, in state 206,the I/O controller determines whether the discovery frequency is alreadybeing used. If the discovery frequency is currently being used, then instate 208 the I/O controller waits for a unique timeout period beforepolling the discovery frequency again. The timeout period is preferablyunique and assigned to each peripheral device in a manner that willmaximize the availability of the discovery frequency by preventing theperipheral from repeatedly polling at the exact same time and intervalas another peripheral is transmitting its discovery signal at the samefrequency. As in state 210, each peripheral device will transmit adiscovery signal on the same discovery frequency in order to allowdetection of the peripheral by a computer in range of the transmission.Alternatively, it is possible to establish different frequencies thatare to be used with different devices, such that detecting a peripheraltransmitting at a given frequency will indicate to the computer whattype of peripheral device is there. Further still, it is possible toestablish a system in which the computer transmits a request signal tothe peripherals, but the preferred method is as set out in states204-210 since this conserves use of the computer's processor and powerfor other tasks.

[0054] In state 212, the computer monitors its discovery frequencytransceiver for discovery signals from peripherals within range. If nodiscovery signal is detected in state 214, then the process returns tostate 212 for further monitoring If the transceiver detects a discoverysignal from a peripheral device in state 214, then the discovery of aperipheral device is communicated to the wireless bus driver in state216. In state 218, the wireless bus driver sends an identificationrequest through the transceiver to the peripheral device that wasdetected.

[0055] Returning to the peripheral device, the I/O controllerdetermines, in state 220, if an identification request has been receivedfrom a computer. f no identification request has been received in state220, then the peripheral device returns to state 208. If anidentification request has in fact been received in state 220, then theidentification of the peripheral device is transmitted from theperipheral's transceiver in state 222.

[0056] In the computer, the bus driver receives and stores theperipheral device identification in state 224. Continuing on to FIG. 9B,in state 226, the bus driver assigns an address to the peripheral deviceand, in state 228, this address is transmitted to the identifiedperipheral device. In state 230, the peripheral receives and stores theassigned address. The bus driver, preferably in cooperation with theoperating system, will query whether the user has chosen to accept theperipheral device during state 232. If the user rejects the peripheraldevice in state 232, then control is passed back to state 212 to monitorfor further discovery signals. If, in state 232, the user accepts theperipheral device, then in state 234 the bus driver notifies theoperating system of the available peripheral device and the peripheraldevice is configured. This concludes what may be considered to be thediscovery process, since both the computer and the peripheral deviceknow that the other exists and how to communicate with the other. Theprocess may then sit dormant until further communication is initiated bythe computer or until the communication is terminated.

[0057] FIGS. 10A-B provide a flowchart for a device communicationprocess in accordance with the invention. In state 236, the I/Ocontroller of the peripheral device monitors communications received byits transceiver for communications having the assigned address. In state238, an application program being executed by the computer generates arequest to use the peripheral device and sends the request to theoperating system. In turn, according to state 240, the operating systempasses on the request to the bus driver. The bus driver then builds anI/O request and sends it to the transceiver for transmitting to theperipheral in state 242.

[0058] In state 244, the peripheral device determines whether thetransceiver has received an I/O request with the assigned address. If noI/O request with the assigned address has been received, then the I/Ocontroller continues to monitor communications in accordance with state236. If an I/O request has been received with the assigned address, thenin state 245, the peripheral device performs or executes the I/Orequest. Then, in state 246, it is determined whether the I/O requestrequires data transfer. If data transfer is required, then, in state248, it is determined whether the data should be encrypted. Ifencryption is to be used, then the data is encrypted in state 250. Itshould be recognized that states 246-250 are only necessary forperipheral devices of a type that are capable of providing data to thecomputer, such as hard disks or CD ROMs, or when communications with thedevice need to be secure.

[0059] In state 252, the I/O controller polls its receiver for existinguse of the communication frequency and, in state 254, the I/O controllerdetermines whether the communication frequency is already being used. Ifthe communication frequency is currently being used, then in state 256the I/O controller waits for a unique timeout period before polling thecommunication frequency again. The timeout period is preferably uniqueand assigned to each peripheral device in a manner that will maximizethe availability of the communication frequency by preventing theperipheral from repeatedly polling at the exact same time and intervalas another peripheral is transmitting its communication signal at thesame frequency. If the communication frequency is not being used, thenthe I/O controller forwards data to the transceiver in state 258 and thedata is transmitted to the computer in state 260. Then, upon completingthe data transmission, state 262 provides for transmitting aconfirmation of this fact through the transceiver to the bus driver.

[0060] In states 264 and 266, the wireless bus receives the data and theconfirmation, respectively, from the peripheral device. Then, in states268 and 270, steps are taken to check for errors in the data and decryptthe data, respectively. In state 272, the bus driver communicatesconfirmation and data to the operating system and/or the applicationprogram. While this essentially completes the communication process, theperipheral will generally remain available to the computer until thenext time that an application generates a request to use the peripheralin accordance with state 238.

[0061] However, the peripheral device preferably executes a state 274,in which it is determined whether the peripheral device is ready toshutdown. If the peripheral is not to be shutdown, then control ispassed back to state 236 where the peripheral device wait for furthercommunications from the computer. If the peripheral device is beingshutdown, then state 276 sends out a shutdown signal before powering offin state 278.

[0062] In state 280, the computer determined whether it has received ashutdown signal from the peripheral device. If no peripheral deviceshutdown has been received, then state 282 determines whether the timeperiod since the last signal received from the peripheral device hasexceeded a predetermined peripheral device timeout period? If not, thencontrol is passed back to state 238 where the process waits for anapplication program to generate further requests to use the peripheraldevice. However, if the computer either receives a shutdown signal, asdetermined in state 280, or the predetermined peripheral device timeoutperiod has been exceeded, as determined in state 282, then state 284removes the peripheral device identification and configuration from thebus driver and notifies the operating system accordingly. Afterterminating the communication between the computer and peripheraldevice, any further communications between the two entities requiresgoing through the device discovery process of FIGS. 9A and 9B.

[0063] An alternative method for determining whether to remove theperipheral device identification and configuration from the bus driver,requires that the peripheral device transmit a continuous signal at aunique, device-specific frequency in order to make its presencecontinuously detectable by the computer. Accordingly, if the computercannot detect the unique frequency at any given time, then peripheraldevice identification and configuration are removed from the bus driver.

[0064] It is an important feature of the invention that the peripheralidentification and addressing process allows for the discovery,addressing and utilization of multiple peripheral devices. Accordingly,the user can accept a wireless printer, a wireless display device, and awireless keyboard, and have them each configured and availablesimultaneously. If the transceivers are all communicating at the samefrequency, however, then the computer can communicate with only onedevice at a time. Even so, by repeatedly switching the transmissionbetween the data and address of one peripheral to the data and addressof one or more other peripherals, it is possible to achievecommunications that appear to be simultaneous.

[0065] In order to achieve true multi-channel communications withmultiple peripherals, each of the transceivers, such as the 8transceivers facilitating the 8-bit communication of FIG. 8B, musttransmit at a different frequency. Upon discovery of a peripheraldevice, the peripheral device is assigned to a particular transmissionfrequency rather than being assigned an address. In this manner, anytransmission at the assigned frequency is essentially a directcommunication with the peripheral.

[0066] It is an optional feature of the present invention to allow theuser to set up certain preferences about how the bus driver willoperate. It is anticipated that the user may desire to establish apreference that would always automatically accept peripheral devices, asin state 232 of FIG. 9B, as soon as its discovery signal is received bythe transceiver. Another advantageous preference would be to limit thetypes of peripherals that the user wants to accept. For example, theuser may prefer to automatically accept printers and disk drives, butnot scanners or keyboards. Other and further preferences are within thescope of the present invention.

[0067] Finally, FIG. 11 is a block diagram of an alternative indirectmeans for connecting with a peripheral device. In a manner consistentwith the foregoing description, the computer 120 establishes wirelesscommunication with a transformer 290 that is maintained in the proximityof the computer 120 so as to transmit and receive wireless transmissionstherewith. The transformer 290 is capable of outside communication withother devices, including communications over a network 292, such as theInternet or local area network. The transformer 290 directscommunications over the network 292 to a controller 294 that providescommunication with either an attached peripheral device 296 or awireless peripheral device 122. In this manner, the computer 120 is notlimited to the use of peripherals within the computer's immediatebroadcast range, but may use any peripheral that may be established intocommunication with the transformer 290. Only the transformer is requiredto be in the proximity of the computer 120. It should be recognized thatthe communications between the transformer 290, network 292, controller294 and peripheral device 122 maybe established by any means, includingbut not limited to wireless connections, wired connections, andcombinations thereof. To establish communications with the peripheraldevice 122, the network IP address of the peripheral 122 must beprovided to the transformer 290 and the network IP address of thetransformer 290 must be provided to the peripheral device 122 so thatcommunications can be directed between the two devices. Preferably, thecommunication between the computer and the transformer will proceedaccording to the earlier description.

[0068] It will be understood from the foregoing description that variousmodifications and changes may be made in the preferred embodiment of thepresent invention without departing from its true spirit. It is intendedthat this description is for purposes of illustration only and shouldnot be construed in a limiting sense. The scope of this invention shouldbe limited only by the language of the following claims.

What is claimed is:
 1. A method comprising: establishing a wirelesscommunication link between a first transceiver communicatively coupledto a computer bus and a second transceiver communicatively coupled to aperipheral device, wherein the computer is configured to operate underthe control of an operating system and one or more application programs;providing identification of the peripheral device to a driver throughthe first transceiver, wherein the driver is stored in a memory devicethat is coupled to the bus; and communicating information from theapplication program over the wireless communication link to theperipheral device.
 2. The method of claim 1, wherein the step ofestablishing a wireless communication link further comprises:transmitting a device discovery signal at a device discovery frequencyfrom the transceiver of the peripheral device.
 3. The method of claim 2,further comprising: determining if the device discovery frequency is inuse before transmitting a device discovery signal.
 4. The method ofclaim 3, wherein the step of determining if the device discoveryfrequency is in use further comprises: polling the receiver of theperipheral device at the discovery frequency.
 5. The method of claim 3,further comprising: if the discovery frequency is in use, waiting for atimeout period before polling again.
 6. The method of claim 1, whereinthe step of communicating information from the application program overthe wireless communication link to the peripheral device includescommunicating information through the operating system, the devicedriver, the first transceiver, and the second transceiver.
 7. The methodof claim 2, further comprising: receiving the device discovery signal atthe first transceiver; and communicating the device discovery from thefirst transceiver over the bus to the driver.
 8. The method of claim 7,further comprising: communicating a request for identification from thedriver to a control unit of each of the one or more peripheral devices.9. The method of claim 8, further comprising: automatically configuringthe driver for communication with the indentified peripheral device. 10.The method of claim 1, further comprising: assigning an address to theperipheral device; and communicating the assigned address between thecomputer and the peripheral device.
 11. The method of claim 1, whereinthe information that is communicated is selected from commands, data,and combinations thereof.
 12. The method of claim 1, further comprising:encrypting the information before transmitting the information; andtransmitting the encrypting information.
 13. The method of claim 1,further comprising: informing a user of the computer of theidentification of the peripheral device; and querying the user whetherto accept the peripheral device.
 14. The method of claim 10, furthercomprising: monitoring the second transceiver of the peripheral devicefor wireless communications at a communication frequency containing theassigned address; and receiving a communication containing the assignedaddress, wherein the communication is a request from an applicationprogram to use the peripheral device.
 15. The method of claim 14,further comprising: determining if the communication frequency is in usebefore transmitting a reply communication.
 16. The method of claim 15,wherein the step of determining if the device communication frequency isin use further comprises: polling the receiver of the peripheral deviceat the communication frequency.
 17. The method of claim 15, furthercomprising: if the communication frequency is in use, waiting for atimeout period before polling again.
 18. The method of claim 14, furthercomprising: transmitting data from the one or more peripheral devices tothe computer in reply to the request.
 19. The method of claim 12,further comprising: decrypting the encrypted information transmittedbetween the peripheral device and the computer.
 20. The method of claim1, further comprising: transmitting a shutdown signal from thetransceiver of the peripheral device before shutting down the peripheraldevice.
 21. The method of claim 20, further comprising: removing theidentification of the peripheral device from the driver upon receiving ashutdown signal from the peripheral device.
 22. The method of claim 1,further comprising: continuously transmitting a signal at a uniquefrequency from the transceiver of the peripheral device; and removingthe identification of the peripheral device from the driver if thecomputer can no longer detect a signal from the peripheral device. 23.The method of claim 20, further comprising: removing the identificationof the peripheral device from the driver if no reply is received fromthe peripheral device within a predetermined peripheral device timeoutperiod.
 24. A method comprising: establishing a wireless communicationlink between a wireless bus extender communicatively coupled to acomputer bus and a transceiver communicatively coupled to a peripheraldevice, wherein the computer is configured to operate under the controlof an operating system and one or more application programs; providingidentification of the peripheral device to a driver for the wireless busextender, wherein the driver is stored in a memory device that iscoupled to the bus; and communicating commands information from theapplication program over the wireless communication link to theperipheral device.
 25. The method of claim 24, wherein the wireless busextender comprises a transceiver for transmitting and receiving wirelesssignals selected from radio frequency and infrared.
 26. A wirelesssystem bus extender for allowing direct wireless communications betweena bus in a computer and a wireless peripheral device.
 27. The wirelesssystem bus of claim 26, wherein the computer bus is selected from aninternal bus and an expansion bus.
 28. A system comprising: a computerincluding a computer bus; a wireless transceiver in electroniccommunication with the computer bus, wherein the computer buscommunications are transmitted and received wirelessly.
 29. The systemof claim 28, further comprising: a local peripheral device having awireless transceiver for direct wireless communication with the computerbus.
 30. A computer system comprising: a system bus providingcommunication lines between a memory device, a central processing unit,an input/output controller, and a user input device; a wireless systembus extender coupled to the system bus; and bus extender driver codestored in the memory and executing on the central processing unit toestablish wireless communication with a wireless peripheral device. 31.The computer system of claim 30, wherein the wireless system busextender and the bus extender driver code cooperate to discover thewireless peripheral device.
 32. The computer system of claim 31, whereinthe wireless system bus extender and the bus extender driver codecooperate to request and receive identification of the wirelessperipheral device.
 33. The computer system of claim 32, wherein thewireless system bus extender and the bus extender driver code cooperateto communicate a bus address to the wireless peripheral device.
 34. Thecomputer system of claim 33, further comprising: an operating systemstored in the memory and executing on the central processing unit toexecute commands from one or more application programs stored in thememory and executing on the central processing unit, wherein the busextender driver code makes the wireless peripheral device accessible tothe operating system.
 35. The computer system of claim 30, wherein thewireless communication is selected from serial and parallelcommunications.
 36. A computer program product including instructionsembodied on a computer readable medium, the instructions comprising:establishing instructions for establishing a wireless communication linkbetween a first transceiver communicatively coupled to a computer busand a second transceiver communicatively coupled to a peripheral device,wherein the computer is configured to operate under the control of anoperating system and one or more application programs; providinginstructions for providing identification of the peripheral device to adriver through the first transceiver, wherein the driver is stored in amemory device that is coupled to the bus; and communicating instructionsfor communicating information from the application program over thewireless communication link to the peripheral device.
 37. The computerprogram product of claim 36, wherein the establishing instructions forestablishing a wireless communication link further comprise:transmitting instructions for transmitting a device discovery signalfrom the peripheral device transceiver at a device discovery frequency.38. The computer program product of claim 37, further comprising:determining instructions for determining if the device discoveryfrequency is in use before transmitting a device discovery signal. 39.The computer program product of claim 38, wherein the determininginstructions for determining if the device discovery frequency is in usefurther comprises: polling instructions for polling the peripheraldevice receiver at the discovery frequency.
 40. The computer programproduct of claim 38, further comprising: waiting instructions forwaiting for a timeout period before polling the peripheral device if thediscovery frequency is in use.
 41. The computer program product of claim36, wherein the instructions for communicating information from theapplication program over the wireless communication link to theperipheral device includes instructions for communicating informationthrough the operating system, the device driver, the first transceiver,and the second transceiver.
 42. The computer program product of claim37, further comprising: receiving instructions for receiving the devicediscovery signal at the computer transceiver; and communicatinginstructions for communicating the device discovery from the computertransceiver over the bus to the driver.
 43. The computer program productof claim 42, further comprising: communicating instructions forcommunicating a request for identification from the driver to a controlunit of the peripheral device.
 44. The computer program product of claim43, further comprising: configuring instructions for automaticallyconfiguring the driver for communication with the identified peripheraldevice.
 45. The computer program product of claim 36, furthercomprising: assigning instructions for assigning an address to theperipheral device; and communicating instructions for communicating theassigned address between the computer and the peripheral device.
 46. Thecomputer program product of claim 36, wherein the information that iscommunicated is selected from commands, data, and combinations thereof.47. The computer program product of claim 36, further comprising:encrypting instructions for encrypting the information beforetransmitting the information; and transmitting instructions fortransmitting the encrypted information.
 48. The computer program productof claim 36, further comprising: informing instructions for informing auser of the computer of the peripheral device identification; andquerying instructions for querying the user whether to accept theidentified peripheral device.
 49. The computer program product of claim45, further comprising: monitoring instructions for monitoring theperipheral device transceiver for wireless communications at acommunication frequency containing the assigned address; and receivinginstructions for receiving a communication containing the assignedaddress, wherein the communication is a request from an applicationprogram to use the peripheral device.
 50. The computer program productof claim 49, further comprising: determining instructions fordetermining if the communication frequency is in use before transmittinga reply communication.
 51. The computer program product of claim 50,wherein the determining instructions for determining if the devicecommunication frequency is in use further comprises: pollinginstructions for polling the peripheral device receiver at thecommunication frequency.
 52. The computer program product of claim 50,further comprising: waiting instructions for waiting for a timeoutperiod before polling the peripheral device if the communicationfrequency is in use.
 53. The computer program product of claim 49,further comprising: transmitting instructions for transmitting data fromthe peripheral device to the computer in reply to the request.
 54. Thecomputer program product of claim 47, further comprising: decryptinginstructions for decrypting the encrypted information transmittedbetween the peripheral device and the computer.
 55. The computer programproduct of claim 36, further comprising: transmitting instructions fortransmitting a shutdown signal from the peripheral device transceiverbefore shutting down the peripheral device.
 56. The computer programproduct of claim 55, further comprising: removing instructions forremoving the identification of the peripheral device from the driverupon receiving a shutdown signal from the peripheral device.
 57. Thecomputer program product of claim 55, further comprising: removinginstructions for removing the identification of the peripheral devicefrom the driver if no reply is received from the peripheral devicewithin a predetermined peripheral device timeout period.
 58. A computerprogram product comprising: establishing instructions for establishing awireless communication link between a wireless bus extendercommunicatively coupled to a computer bus and a transceivercommunicatively coupled to a peripheral device, wherein the computer isconfigured to operate under the control of an operating system and oneor more application programs; identification instructions for providingidentification of the peripheral device to a driver for the wireless busextender, wherein the driver is stored in a memory device that iscoupled to the bus; and communicating instructions for communicatinginformation from the application program over the wireless communicationlink to the peripheral device.
 59. The computer program product of claim58, wherein the wireless bus extender comprises a transceiver fortransmitting and receiving wireless signals selected from radiofrequency and infrared.
 60. The system of claim 29, further comprising:a remote peripheral device in communication with the local peripheraldevice over a network.
 61. The system of claim 60, wherein the networkcomprises a plurality of interconnected computers.
 62. The system ofclaim 61, wherein the remote peripheral device is a wireless peripheraldevice in wireless communication with one of the computers on thenetwork.
 63. The system of claim 61, wherein the remote peripheraldevice is a peripheral device in wired communication with one of thecomputers on the network.
 64. The system of claim 60, wherein thenetwork is selected from the Internet, a local area network, andcombinations thereof.